package com.it.objectsdemo;

import java.util.Objects;

public class ObjectsDemo1 {
    public static void main(String[] args) {
        /*
            public String toString()            返回对象的字符串表示形式
            public Boolean equals(Object obj)   比较两个对象是否相等
            protected Object clone(int a)       对象克隆
         */


        //1.创建学生对象
        Student s1 = null;
        Student s2 = new Student("zhangsan",23);

        //比较两个对象的属性是否相同
        /*if (s1 == null) {
            Boolean result = s1.equals(s2);
            System.out.println(result);
        }else{
            System.out.println("调用者为空");
        }*/
        //Java可以帮我们进行非空判断

        Boolean result = Objects.equals(s1,s2);
        System.out.println(Objects.isNull(s1));
        //细节：
        //方法的底层就是会判断s1是否为null，如果为null，直接返回false
        //如果s1不为null，那么就利用s1再次调用equals方法
        //此时s1是Student类型，所以最终还是会调用Student中的equals方法
        // 如果没有重写，就比较地址值，如果重写了，就比较属性值


        //public static boolean isNull(Object  obj)  判断对象是否为null
        System.out.println(Objects.isNull(s2));
    }
}
